import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import Markdown from "vite-plugin-md";
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue({
      include: [/\.vue$/, /\.md$/], // <--
    }),
    Markdown(),
  ],
  // 引入第三方的配置
  optimizeDeps: {
    include: ["axios", "vue-konva"],
  },
  // 是否开启自动注入 CSS
  css: {
    // 是否开启 CSS Modules
    modules: true,
    // 是否将 CSS 提取到单独的 CSS 文件中
    extract: true,
    // 是否开启 CSS 预处理器
    preprocessorOptions: {
      scss: {
        additionalData: '@use "./src/assets/css/style.scss" as * ;'
      }
    }
  },
  // 配置别名
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
      packages: path.resolve(__dirname, "packages"),
    },
  },
  build: {
    rollupOptions: {
      external: ["vue"], //打包时不依赖的组件
      output: {
        // 其他属性...
        exports: "named",  //解决packages index.js 文件有两种导出方式警告
        //在umd模式下 抛出一个全局的vue对象
        globals: {
          vue: "Vue",
        },
        assetFileNames: 'assets/[name].[ext]',
      },
    },
    lib: {
      entry: "./packages/index.js",
      name: "bryantui",
      // fileName: (format) => `index.${format}.js`,
    },
    // css: {
    //   // 将 CSS 文件打包到 dist/css 目录中
    //   // dir: 'css',
    //   // 是否将 CSS 文件单独提取出来，默认值为 true
    //   // 如果你希望将 CSS 文件内联到 HTML 中，可以将该值设置为 false
    //   extract: true,
    //   // 是否压缩 CSS 文件，默认值为 true
    //   minify: true,
    //   // 是否使用 CSS modules
    //   modules: false,
    // },
  },
  // 代理请求
  proxy: {
    "/api": {
      target: "https://iot.dunji.tech/v1",
      changeOrigin: true,
      rewrite: (path) => path.replace(/^\/api/, ""),
    },
  },
  server: {
    host: "localhost",
    hmr: true,
  },
});
